//=====================================================================
//
//=====================================================================
#ifndef KALEIDOSCOPE_PARSER_PARSEME_IDS_HPP
#define KALEIDOSCOPE_PARSER_PARSEME_IDS_HPP
//=====================================================================
#include <kaleidoscope/kaleidoscope.hpp>
//=====================================================================
KALEIDOSCOPE_BEGIN
//=====================================================================

	namespace ids
	{
		// different types of expressions (plus, minus, etc...)
		// these go into the expression node's value.integer
		namespace expr
		{
			const int definition = 0;
			const int addition = 1;
			const int subtraction = 2;
			const int multiplication = 3;
			const int division = 4;
		}
		
		// this is bad to receieve! usually indicates EOF
		const size_t undefined = -1;
		const size_t root = 0;
		const size_t whitespace = 1;
		const size_t newline = 2;

		const size_t identifier = 10;

		const size_t lparen = 20;
		const size_t rparen = 21;
		const size_t lcurly = 22;
		const size_t rcurly = 23;
		const size_t semi = 24;
		const size_t comma = 25;
		const size_t plus_sign = 26;
		const size_t minus_sign = 27;
		const size_t star_sign = 28;
		const size_t fwd_slash = 29;
		
		const size_t int_keyword = 50;
		const size_t function_keyword = 51;
		const size_t return_keyword = 52;
		const size_t void_keyword = 53;
		
		const size_t int_literal = 100;
		
		
		const size_t function = 1000;
		const size_t parameter_list = 1001;
		//const size_t symbol = 1002;
		const size_t type = 1003;
		const size_t return_statement = 1004;
		const size_t function_body = 1005;
		
		const size_t statement = 1006;
		const size_t function_call = 1007;
		const size_t parameter = 1008;
		const size_t expression = 1009;
		const size_t variable = 1010;
		
		//const size_t parameter = 1002;
		//const size_t identifier = 1100;
		const size_t int_type = 1101;
		const size_t void_type = 1102;
	}
	
//=====================================================================
KALEIDOSCOPE_CLOSE
//=====================================================================
#endif
//=====================================================================
